Release 10.1A: OpenEdge Development:
Debugging and Troubleshooting


Dynamic Object Tracking dialog box

The Dynamic Object Tracking dialog box lets you monitor the creation and destruction of dynamic object instances in a Progress 4GL application. Use this dialog box to locate dynamic object instances the application has created, no longer needs, and has not yet destroyed. These undeleted object instances might indicate a memory leak.

Access this dialog box by choosing Diagnostics Monitor Dynamic Objects.

The Dynamic Object Tracking dialog box contains the following tabs:

The Dynamic Object Tracking dialog box also contains the following buttons:

Control Monitoring tab

The Control Monitoring tab lets you select the types of dynamic objects you want to monitor. Figure 3–10 shows the Control Monitoring tab.

Figure 3–10: Dynamic Object Tracking dialog box with Control Monitoring tab

The Control Monitoring tab contains a treeview control that displays the types of dynamic objects you can monitor, organized within object categories.The following list shows the dynamic object types you can monitor, as they appear on the Control Monitoring tab:

To expand a category node, click the plus sign (+) next to the node. To collapse a category node, click the minus sign () next to the node.

You can select all object types within a category by selecting the check box at the category node level, whether or not the node is expanded. You also can select one or more individual object types within a category, after you expand the category node, by:

To begin tracking the creation and destruction of the object instances for the object types you selected, choose the Start Monitoring button. Then, use the View Objects tab to monitor the active object instances. An active object instance is an instance of a dynamic object the application has created, but not yet destroyed, since you started or restarted monitoring.

View Objects tab

The View Objects tab lists the active dynamic object instances based on the object types you selected in the Control Monitoring tab. The View objects includes the line of code where the object comes into being. The list is in order of object creation. Use this list to quickly determine what object needs to be deleted.

Active object instances are instances of dynamic objects the application has created, but not yet destroyed, since you started or restarted monitoring. Figure 3–11 shows the View Objects tab.

Figure 3–11: Dynamic Object Tracking dialog box with View Objects tab

While the Debugger is monitoring active object instances, the following information is displayed in the active object instances list box:

If an active object instance entry for any of the following object types is marked as “Delete Pending,” execution of the DELETE OBJECT statement for that object instance has been delayed for some reason:

Each time the application creates a dynamic object instance, the Debugger refreshes the list of active object instances by:

Only objects of the types you selected in the Control Monitoring tab appear in the object type selection list. You can filter the object instances that appear in the active object instances list box by selecting one or more object types in the object type selection list and choosing the Filter List button. Then, only instances of the types you select appear in the list. Use the Show Complete List button to cancel any filter settings and display the complete list of objects.

While monitoring, you can clear the current list of active object instances and restart monitoring in one of two ways:

To monitor a different set of object types, modify your selection of object types on the Control Monitoring tab and choose the Start Monitoring or Restart Monitoring button.


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095